1. Field of the Invention
The present invention relates to an information storage apparatus, and more particularly to a memory card such as an SD (Secure Digital) memory card.
2. Description of the Related Art
There is a non-volatile memory device, represented by a flash memory, wherein a minimum erase unit (data erase block) is greater than a minimum write unit (data write block). When additional write is to be executed in this type of non-volatile memory device, an operation for shifting existing data, as well as a data write operation, is performed.
In the data shift operation, an area of a new data erase block is prepared in the non-volatile memory device, data is copied in the area and also additional write data is written in the area.
The “data shift operation” will now be described in greater detail.
The data shift operation is performed in a non-volatile memory device, such as a NAND type flash memory or an AND type flash memory, wherein a data bit is writable only in one direction of “1→0” or “0→1”.
In the NAND type flash memory, for instance, data is writable only in one direction of “1→0”. Even if “1” is to be written in an area with data “0”, “1” cannot be written and data “0” remains.
Unless all area for write in the non-volatile memory device have initial values “1”, there may be a case where data to be written does not coincide with data actually written. The sole method for setting data values “1” in the all area is to issue an erase command to the addresses of the area.
Assume that the host has issued a first command for new write of 8 KB data, and a second command for write (additional write) of 8 KB data following the new write of 8 KB data. Since the second command relates to the additional write, additional data write is attempted in the area in the non-volatile memory device. However, it is not sure whether data in the area is “1” (i.e. data after erase), and it is possible that data to be written does not coincide with data actually written.
To avoid this problem, new write area is prepared as a substitute for the above area for additional write. The new write area is first erased, thereby the new write area with values “1” are created. Then, the existing data is copied in the new write blocks.
Thereafter, additional write data from the host is written, and the previously used write area is invalidated. This process is required for shifting the existing data.
The flash memory is advantageous in that it is non-volatile and rewritable. However, in some cases, physical overwrite is prohibited. In addition, in general, the erase/write speed is slower than the read speed.
Furthermore, in the case where the minimum erase unit is larger than the minimum read/write unit, it is necessary to copy or erase the existing data in the flash memory, as represented by “existing data shift operation”, even when only data in a partial area needs to be rewritten. Thus, there are many necessary operations, and the write operation speed cannot be increased.